﻿using System;
namespace Xroad.Eu.Xsd.Identifiers {
    
    
    [System.SerializableAttribute()]
    public partial class XRoadIdentifierType {
        
        private global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @__objectType;
        
        private string @__xRoadInstance;
        
        private string @__memberClass;
        
        private string @__memberCode;
        
        private string @__subsystemCode;
        
        private string @__groupCode;
        
        private string @__serviceCode;
        
        private string @__serviceVersion;
        
        private string @__securityCategoryCode;
        
        private string @__serverCode;
        
        public XRoadIdentifierType() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public XRoadIdentifierType(global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @objectType, string @xRoadInstance, string @memberClass, string @memberCode, string @subsystemCode, string @groupCode, string @serviceCode, string @serviceVersion, string @securityCategoryCode, string @serverCode) {
            this.@__objectType = @objectType;
            this.@__xRoadInstance = @xRoadInstance;
            this.@__memberClass = @memberClass;
            this.@__memberCode = @memberCode;
            this.@__subsystemCode = @subsystemCode;
            this.@__groupCode = @groupCode;
            this.@__serviceCode = @serviceCode;
            this.@__serviceVersion = @serviceVersion;
            this.@__securityCategoryCode = @securityCategoryCode;
            this.@__serverCode = @serverCode;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public XRoadIdentifierType(global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType @objectType, string @xRoadInstance, string @memberClass, string @memberCode, string @groupCode, string @serviceCode, string @securityCategoryCode, string @serverCode) {
            this.@__objectType = @objectType;
            this.@__xRoadInstance = @xRoadInstance;
            this.@__memberClass = @memberClass;
            this.@__memberCode = @memberCode;
            this.@__groupCode = @groupCode;
            this.@__serviceCode = @serviceCode;
            this.@__securityCategoryCode = @securityCategoryCode;
            this.@__serverCode = @serverCode;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected XRoadIdentifierType(XRoadIdentifierType @xRoadIdentifierType) {
            this.@__objectType = @xRoadIdentifierType.ObjectType;
            this.@__xRoadInstance = @xRoadIdentifierType.XRoadInstance;
            this.@__memberClass = @xRoadIdentifierType.MemberClass;
            this.@__memberCode = @xRoadIdentifierType.MemberCode;
            this.@__subsystemCode = @xRoadIdentifierType.SubsystemCode;
            this.@__groupCode = @xRoadIdentifierType.GroupCode;
            this.@__serviceCode = @xRoadIdentifierType.ServiceCode;
            this.@__serviceVersion = @xRoadIdentifierType.ServiceVersion;
            this.@__securityCategoryCode = @xRoadIdentifierType.SecurityCategoryCode;
            this.@__serverCode = @xRoadIdentifierType.ServerCode;
        }
        
        public virtual global::Xroad.Eu.Xsd.Identifiers.XRoadObjectType ObjectType {
            get {
                return this.@__objectType;
            }
            set {
                this.@__objectType = value;
            }
        }
        
        public virtual string XRoadInstance {
            get {
                return this.@__xRoadInstance;
            }
            set {
                this.@__xRoadInstance = value;
            }
        }
        
        public virtual string MemberClass {
            get {
                return this.@__memberClass;
            }
            set {
                this.@__memberClass = value;
            }
        }
        
        public virtual string MemberCode {
            get {
                return this.@__memberCode;
            }
            set {
                this.@__memberCode = value;
            }
        }
        
        public virtual string SubsystemCode {
            get {
                return this.@__subsystemCode;
            }
            set {
                this.@__subsystemCode = value;
            }
        }
        
        public virtual string GroupCode {
            get {
                return this.@__groupCode;
            }
            set {
                this.@__groupCode = value;
            }
        }
        
        public virtual string ServiceCode {
            get {
                return this.@__serviceCode;
            }
            set {
                this.@__serviceCode = value;
            }
        }
        
        public virtual string ServiceVersion {
            get {
                return this.@__serviceVersion;
            }
            set {
                this.@__serviceVersion = value;
            }
        }
        
        public virtual string SecurityCategoryCode {
            get {
                return this.@__securityCategoryCode;
            }
            set {
                this.@__securityCategoryCode = value;
            }
        }
        
        public virtual string ServerCode {
            get {
                return this.@__serverCode;
            }
            set {
                this.@__serverCode = value;
            }
        }
    }
}
